package websocketgulu.demo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import websocketgulu.demo.common.lang.Result;
import websocketgulu.demo.pojo.RecordDetails;
import websocketgulu.demo.service.Mp3DataService;

import javax.servlet.http.HttpServletResponse;

@RestController
@RequestMapping("/api/record")
public class GuluRecordAudio {

    /**
     * 录制音频：
     *     1. 用户可以点击一个开始时间，然后结束录制时再点击一个结束时间
     *     将这两个时间存入存到列表里，待用户选择并播放。但是怎么确定当前音频的music_id?
     *
     *     2. 用户根据userId可以看到所有的录制记录，并选择其中一个来进行播放。
     *        根据选中的记录返回截取片段的信息，并进行播放
     *
     * Record:
     *     id, userId, music_id, start_time, end_time, remark(备注),
     */
    @Autowired
    private Mp3DataService mp3DataService;
    @PostMapping("/save")
    public Result RecordAudio(@RequestBody RecordDetails rd) {
        mp3DataService.insertMusicList(rd);
        return Result.success("保存记录成功！");
    }


    /**
     *  加载所有的录制记录
     */
    @GetMapping("/load")
    public Result loadAllRecords(@RequestParam("userId") String userId) {
        return Result.success(mp3DataService.loadMusicList(userId));
    }

    /**
     * 根据这个Record id就能唯一地确认music 和 record，并能获取到Record的所有信息
     * 拿着这个信息返回给user，他想要回放的音频
     */
    @GetMapping("/play")
    public void playMusicByRecord(@RequestParam("record_id") String record_id, HttpServletResponse response) {
        mp3DataService.playMusicByRecordId(record_id, response);
    }
}
